﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GN.Pay.Client.Request.MerchantMember
{
    /// <summary>
    /// 银行卡绑定申请
    /// </summary>
    public class BankCardBindApplyRequest : MemberRequest
    {
        /// <summary>
        /// 银行编号
        /// </summary>
        [Required(ErrorMessage = "银行编号不能为空")]
        [MaxLength(20, ErrorMessage = "银行编号长度不能超过20个字符串")]
        public string BankNo { get; set; }

        /// <summary>
        /// 卡号或账号
        /// </summary>
        [Required(ErrorMessage = "卡号或账号不能为空")]
        [MaxLength(50, ErrorMessage = "卡号或账号长度不能超过50个字符串")]
        public string AccountNo { get; set; }

        /// <summary>
        /// 户名
        /// </summary>
        [Required(ErrorMessage = "户名不能为空")]
        [MaxLength(50, ErrorMessage = "户名长度不能超过50个字符串")]
        public string AccountName { get; set; }

        /// <summary>
        /// 身份证号
        /// </summary>
        [Required(ErrorMessage = "身份证号不能为空")]
        [MinLength(18, ErrorMessage = "身份证号长度必须是18位")]
        [MaxLength(18, ErrorMessage = "身份证号长度必须是18位")]
        public string IdentityNo { get; set; }

        /// <summary>
        /// 账户类型(借记或贷记,常量组 = 1)
        /// </summary>
        public int AccountType { get; set; }

        /// <summary>
        /// 开户行名称
        /// </summary>
        [MaxLength(50, ErrorMessage = "开户行名称长度不能超过50个字符串")]
        public string OpenBankName { get; set; }

        /// <summary>
        /// 开户行省份
        /// </summary>
        [MaxLength(20, ErrorMessage = "开户行省份长度不能超过20个字符串")]
        public string OpenBankProvince { get; set; }

        /// <summary>
        /// 开户行所在城市
        /// </summary>
        [MaxLength(20, ErrorMessage = "开户行所在城市长度不能超过20个字符串")]
        public string OpenBankCity { get; set; }

        /// <summary>
        /// 预留手机号
        /// </summary>
        [Required(ErrorMessage = "预留手机号不能为空")]
        [MinLength(11, ErrorMessage = "预留手机号长度必须是11位")]
        [MaxLength(11, ErrorMessage = "预留手机号长度必须是11位")]
        public string MobilePhone { get; set; }

        /// <summary>
        /// 信用卡有效期
        /// </summary>
        [MaxLength(20, ErrorMessage = "信用卡有效期长度不能超过20个字符串")]
        public string CreditCardLastTerm { get; set; }

        /// <summary>
        /// 信用卡尾号
        /// </summary>
        [MaxLength(20, ErrorMessage = "信用卡尾号长度不能超过20个字符串")]
        public string CreditCardLastNo { get; set; }
    }
}
